package com.vdong.trade.trading.service;

import com.vdong.trade.trading.common.exception.ServiceException;
import com.vdong.trade.trading.entity.dto.param.AmountDataDTO;
import com.vdong.trade.trading.entity.dto.param.AmountParamDTO;
import com.vdong.trade.trading.entity.dto.param.AmountTradingParamDTO;
import com.vdong.trade.trading.entity.dto.result.AmountResultDTO;

import java.util.Optional;

/**
 * @author <a href="mailto:clf@vdongzc.com">clf</a>
 * @Description:用户资金service
 * @Date Create on 2018-12-13 15:10:22
 * @since version1.0
 */
public interface AmountService {

    /**
     * 查询用户userId资金详情
     *
     * @param userId
     * @return
     */
    AmountResultDTO selectAmountMOByUserId(Long userId, String userType);

    /**
     * 更新账户数据
     *
     * @param param
     * @return
     */
    Optional<String> updateAmountByParam(AmountDataDTO param);

    /**
     * 更新账户数据,新增资金交易流水
     *
     * @param param 请求参数
     * @param flag  true 新增/false不新增 资金交易流水
     * @return
     */
    Optional<String> amountTrading(AmountTradingParamDTO param, Boolean flag) throws ServiceException;

    /**
     * 新增用户资金账户
     */
    Optional<String> insertUserAmount(AmountParamDTO dto);


}
